{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright (c) MONAI Consortium  \n",
    "Licensed under the Apache License, Version 2.0 (the \"License\");  \n",
    "you may not use this file except in compliance with the License.  \n",
    "You may obtain a copy of the License at  \n",
    "&nbsp;&nbsp;&nbsp;&nbsp;http://www.apache.org/licenses/LICENSE-2.0  \n",
    "Unless required by applicable law or agreed to in writing, software  \n",
    "distributed under the License is distributed on an \"AS IS\" BASIS,  \n",
    "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  \n",
    "See the License for the specific language governing permissions and  \n",
    "limitations under the License.\n",
    "\n",
    "# MONAI Auto3DSeg \"Hello World\" Example\n",
    "\n",
    "In this notebook, we will provide a simple demonstration of how to use Auto3DSeg AutoRunner to process a simulated dataset and generate results within minutes."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup environment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!python -c \"import monai\" || pip install -U \"monai-weekly[fire, nibabel, yaml, tqdm, einops]\"\n",
    "%env CUDA_VISIBLE_DEVICES=0"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import json\n",
    "import nibabel as nib\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from monai.apps.auto3dseg import AutoRunner\n",
    "from monai.config import print_config\n",
    "from monai.data import create_test_image_3d\n",
    "\n",
    "print_config()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simulate a special dataset\n",
    "\n",
    "It is well known that AI takes time to train. To provide the \"Hello World!\" experience of Auto3D in this notebook, we will simulate a small dataset and run training only for multiple epochs. Due to the nature of AI, the performance shouldn't be highly expected, but the entire pipeline will be completed within minutes!\n",
    "\n",
    "`sim_datalist` provides the information of the simulated datasets. It lists 12 training and 2 testing images and labels. The training data are split into 3 folds. Each fold will use 8 images to train and 4 images to validate. The size of the dimension is defined by the `sim_dim` ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "sim_datalist = {\n",
    "    \"testing\": [\n",
    "        {\"image\": \"test_image_001.nii.gz\", \"label\": \"test_label_001.nii.gz\"},\n",
    "        {\"image\": \"test_image_002.nii.gz\", \"label\": \"test_label_002.nii.gz\"},\n",
    "    ],\n",
    "    \"training\": [\n",
    "        {\"fold\": 0, \"image\": \"tr_image_001.nii.gz\", \"label\": \"tr_label_001.nii.gz\"},\n",
    "        {\"fold\": 0, \"image\": \"tr_image_002.nii.gz\", \"label\": \"tr_label_002.nii.gz\"},\n",
    "        {\"fold\": 0, \"image\": \"tr_image_003.nii.gz\", \"label\": \"tr_label_003.nii.gz\"},\n",
    "        {\"fold\": 0, \"image\": \"tr_image_004.nii.gz\", \"label\": \"tr_label_004.nii.gz\"},\n",
    "        {\"fold\": 1, \"image\": \"tr_image_005.nii.gz\", \"label\": \"tr_label_005.nii.gz\"},\n",
    "        {\"fold\": 1, \"image\": \"tr_image_006.nii.gz\", \"label\": \"tr_label_006.nii.gz\"},\n",
    "        {\"fold\": 1, \"image\": \"tr_image_007.nii.gz\", \"label\": \"tr_label_007.nii.gz\"},\n",
    "        {\"fold\": 1, \"image\": \"tr_image_008.nii.gz\", \"label\": \"tr_label_008.nii.gz\"},\n",
    "        {\"fold\": 2, \"image\": \"tr_image_009.nii.gz\", \"label\": \"tr_label_009.nii.gz\"},\n",
    "        {\"fold\": 2, \"image\": \"tr_image_010.nii.gz\", \"label\": \"tr_label_010.nii.gz\"},\n",
    "        {\"fold\": 2, \"image\": \"tr_image_011.nii.gz\", \"label\": \"tr_label_011.nii.gz\"},\n",
    "        {\"fold\": 2, \"image\": \"tr_image_012.nii.gz\", \"label\": \"tr_label_012.nii.gz\"},\n",
    "    ],\n",
    "}\n",
    "\n",
    "sim_dim = (64, 64, 64)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generate images and labels\n",
    "\n",
    "Now we can use MONAI `create_test_image_3d` and `nib.Nifti1Image` functions to generate the 3D simulated images under the work_dir"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "work_dir = \"./helloworld_work_dir\"\n",
    "if not os.path.isdir(work_dir):\n",
    "    os.makedirs(work_dir)\n",
    "\n",
    "dataroot_dir = os.path.join(work_dir, \"sim_dataroot\")\n",
    "if not os.path.isdir(dataroot_dir):\n",
    "    os.makedirs(dataroot_dir)\n",
    "\n",
    "datalist_file = os.path.join(work_dir, \"sim_datalist.json\")\n",
    "with open(datalist_file, \"w\") as f:\n",
    "    json.dump(sim_datalist, f)\n",
    "\n",
    "for d in sim_datalist[\"testing\"] + sim_datalist[\"training\"]:\n",
    "    im, seg = create_test_image_3d(\n",
    "        sim_dim[0], sim_dim[1], sim_dim[2], rad_max=10, num_seg_classes=1, random_state=np.random.RandomState(42)\n",
    "    )\n",
    "    image_fpath = os.path.join(dataroot_dir, d[\"image\"])\n",
    "    label_fpath = os.path.join(dataroot_dir, d[\"label\"])\n",
    "    nib.save(nib.Nifti1Image(im, affine=np.eye(4)), image_fpath)\n",
    "    nib.save(nib.Nifti1Image(seg, affine=np.eye(4)), label_fpath)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inspect the simulated data\n",
    "\n",
    "Here we pick a slice of the 3D image in the test datasets to get an idea of the simulated images."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "img_nib = nib.load(os.path.join(dataroot_dir, sim_datalist[\"testing\"][0][\"image\"]))\n",
    "lbl_nib = nib.load(os.path.join(dataroot_dir, sim_datalist[\"testing\"][0][\"label\"]))\n",
    "img = np.array(img_nib.dataobj)\n",
    "lbl = np.array(lbl_nib.dataobj)\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.imshow(img[32])\n",
    "plt.title(\"image\")\n",
    "cbar = plt.colorbar(shrink=0.55)\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.imshow(lbl[32])\n",
    "plt.title(\"label\")\n",
    "cbar = plt.colorbar(shrink=0.55)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test the Auto3DSeg AutoRunner pipeline\n",
    "\n",
    "`AutoRunner` provides an interface to run the Auot3DSeg pipeline. It will automatically configure four different neural networks and perform multi-fold training to achieve state-of-the-art performance. The module is highly configurable and only requires minimal user input to begin with. In this example, we want to complete the pipeline in two minutes, so we need to have some customizations.\n",
    "\n",
    "Now we set up the `AutoRunner` with some settings:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "runner = AutoRunner(\n",
    "    work_dir=work_dir,\n",
    "    input={\n",
    "        \"modality\": \"MRI\",\n",
    "        \"datalist\": datalist_file,\n",
    "        \"dataroot\": dataroot_dir,\n",
    "    },\n",
    ")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Override the training parameters so that we can complete the pipeline in minutes\n",
    "\n",
    "For demo purposes, below is a code block to convert num_epoch to iteration style and override all algorithms with the same training parameters.\n",
    "If users would like to use more than one GPU, they can change the `CUDA_VISIBLE_DEVICES` environment variable, or just remove the line to use all available devices.\n",
    "Users also need to ensure the number of GPUs is not greater than the number that the training dataset can be partitioned."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "max_epochs = 2\n",
    "\n",
    "train_param = {\n",
    "    \"num_epochs_per_validation\": 1,\n",
    "    \"num_images_per_batch\": 2,\n",
    "    \"num_epochs\": max_epochs,\n",
    "    \"num_warmup_epochs\": 1,\n",
    "}\n",
    "runner.set_training_params(train_param)\n",
    "runner.set_num_fold(num_fold=1)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Start the data analysis, algorithm generation, training, and model ensemble"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "runner.run()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inspect the algo ensembled predctions and compare it with the ground truth"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image_name = sim_datalist[\"testing\"][0][\"image\"].split(\".\")[0]\n",
    "prediction_nib = nib.load(os.path.join(work_dir, \"ensemble_output\", image_name + \"_ensemble\" + \".nii.gz\"))\n",
    "pred = np.array(prediction_nib.dataobj)\n",
    "\n",
    "img_slice32 = lbl[32] == 0\n",
    "label_slice32 = lbl[32] == 1\n",
    "background_slice32 = pred[32, :, :, 0] if pred.ndim == 4 else pred[32] == 0\n",
    "foreground_slice32 = pred[32, :, :, 1] if pred.ndim == 4 else pred[32] == 1\n",
    "\n",
    "plt.subplot(2, 2, 1)\n",
    "plt.imshow(img_slice32)\n",
    "plt.title(\"background groundtruth\")\n",
    "cbar = plt.colorbar(shrink=0.8)\n",
    "plt.subplot(2, 2, 2)\n",
    "plt.imshow(label_slice32)\n",
    "plt.title(\"foreground_groundtruth\")\n",
    "cbar = plt.colorbar(shrink=0.8)\n",
    "plt.subplot(2, 2, 3)\n",
    "plt.imshow(background_slice32)\n",
    "plt.title(\"background prediction\")\n",
    "cbar = plt.colorbar(shrink=0.8)\n",
    "plt.subplot(2, 2, 4)\n",
    "plt.imshow(foreground_slice32)\n",
    "plt.title(\"foreground prediction\")\n",
    "cbar = plt.colorbar(shrink=0.8)\n",
    "# set the spacing between subplots\n",
    "plt.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusion\n",
    "\n",
    "Here we complete the entire pipeline. As you may notice, we can see the algorithms start to learn the datasets and the prediction of background and foreground voxels. Auto3DSeg and AutoRunner are highly configurable. To get better results, you can increase the training time, apply a different ensemble method, or use hyper-parameter optimization through the AutoRunner or Auto3DSeg module APIs.\n",
    "\n",
    "As a \"Hello World\" notebook, we will end the experiment with simulated datasets here."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "vscode": {
   "interpreter": {
    "hash": "d4d1e4263499bec80672ea0156c357c1ee493ec2b1c70f0acce89fc37c4a6abe"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
